package Servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import utilidades.Escritor;
import utilidades.HtmlGen;
import utilidades.Validador;
import Inscripcion.Usuario;

/**
 * Servlet implementation class ReescribirInfo
 */
@WebServlet("/ReescribirInfo")
public class ReescribirInfo extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private ServletContext sc;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ReescribirInfo() {
        super();
    }

    public void init(ServletConfig config) throws ServletException{
		
		super.init(config);
		sc = getServletContext();
		
    }
    
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//Recogemos la información de la petición
		String nombre = request.getParameter("nombre");
		String apellido1 = request.getParameter("apellido1");
		String apellido2 = request.getParameter("apellido2");
		String mail = request.getParameter("mail");
		String password = request.getParameter("password");
		String password2 = request.getParameter("password2");
		String sexo = request.getParameter("sexo");

		//Recogemos el id de la tabla y el nombre del usuario
		
		try{
			HttpSession session = request.getSession(true);
			
			String uid 	= (String) session.getAttribute("user");
			
			HashMap<String, Usuario> datosRegistro = Escritor.getRegistrados(sc);
			Usuario viejo = datosRegistro.get(uid);
			
			String id = viejo.getId();
			String username = viejo.getUsername();
			
			
			PrintWriter out;
			out = response.getWriter();
			   
			response.setContentType("text/html");
			
			out.println("<html>");
			out.println("<head><title>CLUB MTB</title></head>");
			
			String urlEstilo = request.getContextPath() + "/css/cv.css"; 
			out.println("<link rel=\"stylesheet\" href=" + urlEstilo + ">");
			out.println("<meta http-equiv=\"content-type\" lang=\"es\" " +
					"content=\"text/html; charset=utf-8\"/>");

			out.println("</head>");
			
			out.println("<body>");
			
			HtmlGen.escribeCabeceraLogin(out);
			
			out.println("<div id=\"contenedor\">");
			
			out.println("<div id=\"Inscripcion\" class=\"apartado_cv\">");
		
			
			if(password.equals(password2)){
				Usuario nuevo = new Usuario(nombre, apellido1, apellido2, mail, username, password, sexo,id);
				//Escritor.addRegistrado(sc, usr2);
				/*Usuario usrAux = Escritor.buscarUsuario(getServletContext(), usr.getId());
				boolean eliminado = Escritor.eliminarUsuario(getServletContext(), usrAux);
				Escritor.ad*/
				boolean modificado = Escritor.modificarUsuario(getServletContext(), viejo, nuevo);
				
				if (modificado)
					out.println("<h1>Se ha modificado correctamente al</h1>");
				else
					out.println("<h1>No existe el usuario</h1>");
				
				out.println("Usuario: <strong>" + username + "</strong><br>");
			}
			else{
				request.getRequestDispatcher("/Modificar").forward(request, response);
			}
			
			
			
			out.println("<hr>");
			
			
			out.println("<a href='index.html'>Volver al inicio</a> | <a href=\"http://localhost:8080/Practica4Pawii/Inscritos\">Ciclistas Inscritos</a>");
		
			out.println("</div>");
		out.println("</div>");
			
		out.println("</body></html>");
			
			//Introducimos el usuario en la tabla
			
		}
		catch(Exception e){
			response.setHeader("Cache-Control", "no-cache, no-store");
			response.setHeader("Pragma", "no-cache"); 
						 
			response.sendRedirect(request.getContextPath() + "/ErrorPages/unknow.html");
		}
	}
	
}
